package com.yami.shop.bean.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 实物订单实体类
 */
@Data
@TableName("yy_order_physical")
@ApiModel(value = "实物订单", description = "实物订单信息")
public class PhysicalOrder {
    
    /**
     * 主键id
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "订单ID", example = "1")
    private Long id;
    
    /**
     * 订单类型(0为自营订单,1为代销订单)
     */
    @ApiModelProperty(value = "订单类型", notes = "0为自营订单,1为代销订单", example = "0")
    private Integer orderType;
    
    /**
     * 商品id(关联yp_prod表)
     */
    @ApiModelProperty(value = "商品ID", notes = "关联yp_prod表", example = "100")
    private Long productId;
    
    /**
     * 供货商id(关联yp_shop_detail表)
     */
    @ApiModelProperty(value = "供货商ID", notes = "关联yp_shop_detail表", example = "200")
    private Long supplierId;
    
    /**
     * 支付方式(0为微信,1为支付宝)
     */
    @ApiModelProperty(value = "支付方式", notes = "0为微信,1为支付宝", example = "0")
    private Integer paymentMethod;
    
    /**
     * 总价
     */
    @ApiModelProperty(value = "总价", example = "199.99")
    private BigDecimal totalPrice;
    
    /**
     * 实付款
     */
    @ApiModelProperty(value = "实付款", example = "189.99")
    private BigDecimal actualPayment;
    
    /**
     * 购买者id(关联yp_user表)
     */
    @ApiModelProperty(value = "购买者ID", notes = "关联yp_user表", example = "1001")
    private Long buyerId;
    
    /**
     * 店铺id
     */
    @ApiModelProperty(value = "店铺ID", example = "50")
    private Long shopId;
    
    /**
     * 订单状态(0为已关闭,1为待付款,-1为退款,2为已完成)
     */
    @ApiModelProperty(value = "订单状态", notes = "0为已关闭,1为待付款,-1为退款,2为已完成", example = "1")
    private Integer orderStatus;
    
    /**
     * 物流单号
     */
    @ApiModelProperty(value = "物流单号", example = "SF1234567890")
    private String trackingNumber;
    
    /**
     * 优惠券id
     */
    @ApiModelProperty(value = "优惠券ID", example = "300")
    private Long couponId;
    
    /**
     * 订单手续费
     */
    @ApiModelProperty(value = "订单手续费", example = "5.00")
    private BigDecimal serviceFee;
    
    /**
     * 买家备注
     */
    @ApiModelProperty(value = "买家备注", example = "请尽快发货")
    private String buyerNote;
    
    /**
     * 收货地址
     */
    @ApiModelProperty(value = "收货地址", example = "北京市朝阳区xxx街道")
    private String shippingAddress;
    
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    
    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
} 